package com.jboltai.pptextract;

import java.io.File;
import java.io.IOException;

/**
 * Interface for processing PPT files
 */
public interface PPTProcessor {
    
    /**
     * Convert PPT file to PDF
     * 
     * @param pptFile PPT file to convert
     * @param outputFile Output PDF file
     * @throws IOException If an I/O error occurs
     */
    void convertToPdf(File pptFile, File outputFile) throws IOException;
    
    /**
     * Extract text content from PPT file
     * 
     * @param pptFile PPT file to extract text from
     * @return Extracted text content
     * @throws IOException If an I/O error occurs
     */
    String extractText(File pptFile) throws IOException;
    
    /**
     * Convert PPT content to Markdown
     * 
     * @param pptFile PPT file to convert
     * @param outputFile Output Markdown file
     * @throws IOException If an I/O error occurs
     */
    void convertToMarkdown(File pptFile, File outputFile) throws IOException;
    
    /**
     * Extract all media (images, videos, audio) from PPT file
     * 
     * @param pptFile PPT file to extract media from
     * @param outputDir Directory to save extracted media files
     * @return Number of media files extracted
     * @throws IOException If an I/O error occurs
     */
    int extractMedia(File pptFile, File outputDir) throws IOException;
    
    /**
     * Extract all media and create a report with text and media references
     * 
     * @param pptFile PPT file to extract content from
     * @param outputDir Directory to save extracted media files and report
     * @throws IOException If an I/O error occurs
     */
    void extractFullContent(File pptFile, File outputDir) throws IOException;
} 
